草庐IT

c++ - LoadLibraryA 和相对路径

全部标签

go - 使用 go run 的路径不适用于 go install/从 bin 调用可执行文件

我开始尝试使用Go,但我正面临一个(我认为)在使用虚拟机的语言中不存在的问题。我有一个src/test/main.go文件,它引用了我在src/test/views/文件夹中的模板。当我使用gorunmain.go时,它会运行,但是当我执行goinstall时,然后在我的bin文件夹中运行可执行文件(./test)我得到一个错误:views/edit.html:nosuchfileordirectory那么,Go如何编译我的项目(文件/文件夹结构相关)以及如何以允许我使用gorun和goinstall/executable? 最佳答案

从 "main"文件夹导入时 Golang 导入路径无效

过去几天一直在尝试消除安装main.go文件时出现的“无效导入路径:”AtomFirstproject/main/Extension“(构建)”错误,但我一直无法找到错误背后的原因。操作系统-Windows10IDE-原子GOBIN-E:\GithubRepository\Programming\Golang\binGOPATH-E:\GithubRepository\Programming\GolangFileDIR-E:\GithubRepository\Programming\Golang\src\AtomFirstproject\main\main.goE:\GithubRep

go - 无法打开应该位于基本路径中的文件

我有一个Go项目(bazel-remote),当使用bazel构建时,它试图读取在命令行中传递的yaml文件。这个yaml文件与我运行bazelrun命令的位置相同。但它无法运行,因为os.Open失败,没有这样的文件或目录。我使用os.Getwd打印了basePath,因为有人建议我的basePath可能设置错误。但是我的basePath设置为我的/private/var/tmp/中创建和存储bazel对象的位置:/private/var/tmp/bazel/312feba8ddcde6737ae7dd7ef9bc2a5a/execroot/main/bazel-out/darwin

go - 如何为以文件路径作为参数的golang方法提供Windows完整路径

所有golang方法都说ioutil.ReadFile理解unix路径,但它不采用windows路径。有没有办法以优雅的方式实现这一点,以便这些方法可以同时采用unix和windows路径。 最佳答案 您也可以在Windows中使用“/”。示例代码如下。packagemainimport("fmt""io/ioutil""log")funcmain(){content,err:=ioutil.ReadFile("D:/temp/main.go")iferr!=nil{log.Fatal(err)}fmt.Printf("Fileco

go - 管理硬编码导入路径

在Go中,一些包是有版本控制的是很常见的。所以一个程序可能看起来像这样:packagemainimport("github.com/go-gl/gl/v3.3-core/gl""github.com/go-gl/glfw/v3.2/glfw")//...dostuff有时,我可能想更新glfw的版本。让我们想象一下GLFW3.3绑定(bind)到Go,我想从3.2更新。我可能在一个项目中有多个Go文件都使用glfw。我不想进入其中的每一个并手动更新导入的版本。理想情况下,我也不会复制那条漫长的路径,我可以在每个项目的一个地方定义它。也许我可以写一个脚本来查找+替换“github.com

无法读取 utmpx 文件

packagemainimport("os""fmt")funcmain(){fd,err:=os.Open("/var/run/utmpx")fmt.Println(fd,err)vardata[]bytelen,err:=fd.Read(data)fmt.Println(len,err)}&{0xc42000a240}nil0nil没有错误,也没有数据。这个路径/var/run/utmpx是从系统头文件中读取的。如何得到这个路径是anotherquestion系统:macOSelcapiton,go版本go1.8darwin/amd64**我的最终目标是将此文件读入gostruct

c - 与 c 相比,Go 的二进制大小

这个问题在这里已经有了答案:ReasonforhugesizeofcompiledexecutableofGo(3个答案)关闭6年前。昨天我只是想比较简单的golangHelloWorld应用程序和c,gobinary是2-3MB(只是fmt.Println)然而,等效的C代码只有大约20kb(printf)。然后我检查了两个二进制文件正在执行的系统调用,使用strace;两者之间没有太大区别,所以你知道为什么golang二进制文件与等效的c语言相比如此庞大吗?

c - 从 Golang 中的 c 函数返回字符串

我正在尝试在GO中调用C函数。这适用于某些扩展(对于整数)。但是,存在问题下面给出了一个最小的例子packagemain/*#include#include#includevoidmy_reverse(char*src,intlen,char*dst){dst=malloc(sizeof(char)*(len+1));printf("[c-part]src=%s\n",src);for(inti=0;i这是两个c函数,它们在c中分配一个新的缓冲区。但是,我得到了输出[c-part]src=HelloWorld[c-part]dst=dlroWolleH[gopart]dst=willr

c - 找不到gmp库

我试着安装依赖gmp的pbc库。Dockerfile:FROMgolang:1.9.6-alpine3.7RUNmkdir-p/go/src/appWORKDIR/go/src/appCOPY./go/src/appRUNapkadd--updategitgccbuild-baseflexbisongmpRUNwgethttps://crypto.stanford.edu/pbc/files/pbc-0.5.14.tar.gz&&\tar-xvfpbc-0.5.14.tar.gz&&\cdpbc-0.5.14&&\./configure--prefix=$HOME/.local&&\m

gorilla mux 子路由器空路径

我想创建一个/user子路由器,如下所示user:=app.Router.PathPrefix("/user").Subrouter()user.HandleFunc("/create",(&controllers.User{c}).Create)user.HandleFunc("",(&controllers.User{c}).Create).Methods("POST")user.HandleFunc("",(&controllers.User{c}).FindAll).Methods("GET")user.HandleFunc("/{id}",(&controllers.User